<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Capability-based addressing</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Capability-based_addressing"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Capability-based_addressing rootpage-Capability-based_addressing skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Capability-based addressing</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p>In <a href="Computer_science" title="Computer science">computer science</a>, <b>capability-based addressing</b> is a scheme used by some computers to control access to memory as an efficient implementation of <a href="Capability-based_security" title="Capability-based security">capability-based security</a>. Under a capability-based addressing scheme, <a href="Pointer_(computer_programming)" title="Pointer (computer programming)">pointers</a> are replaced by protected objects (named <b>capabilities</b>) which specify both a location in memory, along with access rights which define the set of operations which can be carried out on the memory location.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Capabilities can only be created or modified through the use of <a href="Privilege_(computer_science)" class="mw-redirect" title="Privilege (computer science)">privileged</a> instructions which may be executed only by either the <a href="Kernel_(computer_science)" class="mw-redirect" title="Kernel (computer science)">kernel</a> or some other privileged process authorised to do so. Thus, a kernel can limit application code and other subsystems access to the minimum necessary portions of memory (and disable write access where appropriate), without the need to use separate <a href="Address_space" title="Address space">address spaces</a> and therefore require a <a href="Context_switch" title="Context switch">context switch</a> when an access occurs.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Practical_implementations">Practical implementations</h2></div>
<p>Two techniques are available for implementation:
</p>
<ul><li>Require capabilities to be stored in a particular area of memory that cannot be written to by the process that will use them. For example, the <a href="Plessey_System_250" title="Plessey System 250">Plessey System 250</a> required that all capabilities be stored in capability-list segments.</li>
<li>Extend memory with an additional bit, writable only in supervisor mode, that indicates that a particular location is a capability. This is a generalization of the use of <a href="Tagged_architecture" title="Tagged architecture">tag bits</a> to protect segment descriptors in the <a href="Burroughs_large_systems" class="mw-redirect" title="Burroughs large systems">Burroughs large systems</a>, and it was used to protect capabilities in the <a href="IBM_System/38" title="IBM System/38">IBM System/38</a>.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Capability_addressing_in_the_IBM_System/38_and_AS/400">Capability addressing in the IBM System/38 and AS/400</h3></div>
<p>The <a href="IBM_System/38" title="IBM System/38">System/38</a> supported two types of object pointer – <i>authorized pointers</i>, and <i>unauthorized pointers</i>, the former was the platform's implementation of capability-based addressing.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Both types of pointer could only be manipulated using privileged instructions, and differed by whether object authorizations (i.e. access rights) were encoded in the contents of the pointer. Unauthorized pointers did not encode object authorizations, and required the operating system to check the object's authorization separately to determine if access to the object was allowed. Authorized pointers encoded object authorizations, meaning that possession of the pointer implied access, and the operating system was not required to verify authorization separately. Authorized pointers were irrevocable by design - if the object's authorizations were altered, it would not alter the encoded authorizations in any authorized pointers which already existed.
</p><p>Early versions of the <a href="OS/400" class="mw-redirect" title="OS/400">OS/400</a> operating system for the <a href="AS/400" class="mw-redirect" title="AS/400">AS/400</a> also supported authorized pointers, and by extension capability-based addressing. However, authorized pointers were removed in the V1R3 release of OS/400 as their irrevocable nature became seen as a security liability.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> All versions of OS/400 (later IBM i) since rely solely on unauthorized pointers which do not support capability-based addressing.
</p>
<div class="mw-heading mw-heading2"><h2 id="Chronology_of_systems_adopting_capability-based_addressing">Chronology of systems adopting capability-based addressing</h2></div>
<ul><li>1969: <a href="System_250" class="mw-redirect" title="System 250">System 250</a> – <a href="Plessey" title="Plessey">Plessey</a> Company</li>
<li>1970–77: <a href="CAP_computer" title="CAP computer">CAP computer</a> – <a href="University_of_Cambridge_Computer_Laboratory" class="mw-redirect" title="University of Cambridge Computer Laboratory">University of Cambridge Computer Laboratory</a></li>
<li>1978: <a href="System/38" class="mw-redirect" title="System/38">System/38</a> – IBM</li>
<li>1980: <a href="Flex_machine" title="Flex machine">Flex machine</a> – <a href="Royal_Signals_and_Radar_Establishment" title="Royal Signals and Radar Establishment">Royal Signals and Radar Establishment</a> (RSRE) Malvern</li>
<li>1981: <a href="Intel_iAPX_432" title="Intel iAPX 432">Intel iAPX 432</a> – Intel</li>
<li>2014: <a href="Capability_Hardware_Enhanced_RISC_Instructions" title="Capability Hardware Enhanced RISC Instructions">CHERI</a> (adds capabilities to existing <a href="Instruction_set_architecture" title="Instruction set architecture">ISAs</a> for safer programming, even in <a href="C_(programming_language)" title="C (programming language)">C</a> and <a href="C%2B%2B" title="C++">C++</a>)</li>
<li>2020: <a rel="nofollow" class="external text" href="https://ieeexplore.ieee.org/document/9138994/">CHEx86</a></li>
<li>2022: <a rel="nofollow" class="external text" href="https://www.arm.com/architecture/cpu/morello">ARM Morello</a> (<a href="AArch64" title="AArch64">AArch64</a> with CHERI capabilities)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFLevy2014" class="citation book cs1">Levy, Henry M. (2014-05-16). <a rel="nofollow" class="external text" href="https://homes.cs.washington.edu/~levy/capabook/Chapter1.pdf">"Capability and Object-Based System Concepts"</a> <span class="cs1-format">(PDF)</span>. <i>Capability-Based Computer Systems</i>. Digital Press. p. 3-4. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-4831-0106-4</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFLevy2014" class="citation book cs1">Levy, Henry M. (2014-05-16). <a rel="nofollow" class="external text" href="https://homes.cs.washington.edu/~levy/capabook/Chapter8.pdf">"The IBM System/38"</a> <span class="cs1-format">(PDF)</span>. <i>Capability-Based Computer Systems</i>. Digital Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-4831-0106-4</bdi>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFSoltis1997" class="citation book cs1">Soltis, Frank (1997). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=5DoPAAAACAAJ"><i>Inside the AS/400 – Featuring the AS400e series</i></a> (2nd ed.). Duke Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-882419-66-1</bdi>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFFabry1974" class="citation journal cs1">Fabry, R. S. (1974). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F361011.361070">"Capability-based addressing"</a>. <i><a href="Communications_of_the_ACM" title="Communications of the ACM">Communications of the ACM</a></i>. <b>17</b> (7): <span class="nowrap">403–</span>412. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F361011.361070">10.1145/361011.361070</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:5702682">5702682</a>.</cite></li>
<li><cite id="CITEREFWulfCohenCorwinJones1974" class="citation journal cs1"><a href="William_Wulf" title="William Wulf">Wulf, W.</a>; Cohen, E.; Corwin, W.; Jones, A.; Levin, R.; Pierson, C.; Pollack, F. (June 1974). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F355616.364017">"HYDRA: the kernel of a multiprocessor operating system"</a>. <i>Communications of the ACM</i>. <b>17</b> (6): <span class="nowrap">337–</span>345. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F355616.364017">10.1145/355616.364017</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0001-0782">0001-0782</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:8011765">8011765</a>.</cite></li>
<li><cite id="CITEREFDenning1976" class="citation journal cs1"><a href="Peter_J._Denning" title="Peter J. Denning">Denning, P. J.</a> (December 1976). "Fault tolerant operating systems". <i><a href="ACM_Computing_Surveys" title="ACM Computing Surveys">ACM Computing Surveys</a></i>. <b>8</b> (4): <span class="nowrap">359–</span>389. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F356678.356680">10.1145/356678.356680</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0360-0300">0360-0300</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:207736773">207736773</a>.</cite></li>
<li><cite id="CITEREFLevy1984" class="citation book cs1">Levy, Henry M. (1984). <a rel="nofollow" class="external text" href="http://www.cs.washington.edu/homes/levy/capabook/index.html"><i>Capability-based computer systems</i></a>. Maynard, Mass: Digital Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-932376-22-0</bdi>.</cite></li>
<li><cite id="CITEREFLinden1976" class="citation journal cs1">Linden, Theodore A. (December 1976). "Operating System Structures to Support Security and Reliable Software". <i>ACM Computing Surveys</i>. <b>8</b> (4): <span class="nowrap">409–</span>445. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F356678.356682">10.1145/356678.356682</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/2027%2Fmdp.39015086560037">2027/mdp.39015086560037</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0360-0300">0360-0300</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:16720589">16720589</a>.</cite> <a rel="nofollow" class="external text" href="http://csrc.nist.gov/publications/history/lind76.pdf">same document as report for US NIST</a></li>
<li><cite id="CITEREFBerstis1980" class="citation conference cs1">Berstis, Viktors (May 6–8, 1980). <a rel="nofollow" class="external text" href="http://doi.acm.org/10.1145/800053.801932">"Security and protection of data in the IBM System/38"</a>. <i>Proceedings of the 7th annual symposium on Computer Architecture</i>. La Baule, United States. pp. <span class="nowrap">245–</span>252. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F800053.801932">10.1145/800053.801932</a></span>.</cite></li>
<li><cite id="CITEREFSincoskieFarber1980" class="citation journal cs1"><a href="W._David_Sincoskie" title="W. David Sincoskie">Sincoskie, W. David</a>; <a href="Dave_Farber" class="mw-redirect" title="Dave Farber">Farber, David J.</a> (July 1980). "SODS/OS: Distributed Operating System for the IBM Series/1". <i>ACM SIGOPS Operating Systems Review</i>. <b>14</b> (3): <span class="nowrap">46–</span>54. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F850697.850704">10.1145/850697.850704</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14245116">14245116</a>.</cite></li>
<li><cite id="CITEREFMyersBuckingham1980" class="citation journal cs1"><a href="Glenford_Myers" title="Glenford Myers">Myers, G. J.</a>; Buckingham, B. R. S. (October 1980). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/641914.641916">"A hardware implementation of capability-based addressing"</a>. <i>ACM SIGOPS Operating Systems Review</i>. <b>14</b> (4): <span class="nowrap">13–</span>25. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F641914.641916">10.1145/641914.641916</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:17390439">17390439</a>.</cite></li>
<li><cite id="CITEREFHoudekSoltisHoffman1981" class="citation conference cs1">Houdek, M. E.; <a href="Frank_Soltis" title="Frank Soltis">Soltis, F. G.</a>; Hoffman, R. L. (May 1981). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.5555/800052.801885">"IBM System/38 support for capability-based addressing"</a>. <i>Proceedings of the 8th ACM International Symposium on Computer Architecture</i>. ACM/IEEE. pp. <span class="nowrap">341–</span>348.</cite></li>
<li><cite id="CITEREFBuzzardMudge1983" class="citation report cs1">Buzzard, G. D.; Mudge, T. N. (August 1983). <a rel="nofollow" class="external text" href="https://deepblue.lib.umich.edu/handle/2027.42/3992">Object-based Computer Systems and the Ada Programming Language</a> (Report). The University of Michigan – Computer Research Laboratory and Robotics Research Laboratory Department of Electrical and Computer Engineering. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/2027.42%2F3992">2027.42/3992</a>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><cite class="citation mailinglist cs1"><a rel="nofollow" class="external text" href="https://archive.today/20130414173515/http://www.eros-os.org/pipermail/cap-talk/2006-August/005543.html">"On the Spread of the Capability Approach"</a>. <i>cap-talk</i> (Mailing list). Archived from <a rel="nofollow" class="external text" href="http://www.eros-os.org/pipermail/cap-talk/2006-August/005543.html">the original</a> on 2013-04-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-07-16</span></span>.</cite></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Object-capability_security187" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Object-capability_security187" style="font-size:114%;margin:0 4em"><a href="Object-capability_model" title="Object-capability model">Object-capability</a> security</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Principle_of_least_privilege" title="Principle of least privilege">Principle of least privilege</a> (PoLP)</li>
<li><a href="Confused_deputy_problem" title="Confused deputy problem">Confused deputy problem</a></li>
<li><a href="Ambient_authority" title="Ambient authority">Ambient authority</a></li>
<li><a href="File_descriptor" title="File descriptor">File descriptor</a></li>
<li><a href="C-list_(computer_security)" title="C-list (computer security)">C-list</a></li>
<li><a href="Object-capability_model" title="Object-capability model">Object-capability model</a></li>
<li><a href="Capability-based_security" title="Capability-based security">Capability-based security</a></li>
<li><a href="Zooko's_triangle" title="Zooko's triangle">Zooko's triangle</a></li>
<li><a href="Petname" title="Petname">Petnames</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Operating_system" title="Operating system">Operating systems</a>,<br><a href="Kernel_(operating_system)" title="Kernel (operating system)">kernels</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Capsicum_(Unix)" title="Capsicum (Unix)">Capsicum</a></li>
<li><a href="Fuchsia_(operating_system)" title="Fuchsia (operating system)">Fuchsia</a></li>
<li><a href="Genode" title="Genode">Genode</a></li>
<li><a href="GNOSIS" title="GNOSIS">GNOSIS</a> → <a href="KeyKOS" title="KeyKOS">KeyKOS</a> → <a href="EROS_(microkernel)" title="EROS (microkernel)">EROS</a> → CapROS</li>
<li><a href="Hydra_(operating_system)" title="Hydra (operating system)">Hydra</a></li>
<li><a href="IMAX_432" title="IMAX 432">iMAX 432</a></li>
<li><a href="Midori_(operating_system)" title="Midori (operating system)">Midori</a></li>
<li><a href="NLTSS" title="NLTSS">NLTSS</a></li>
<li><a href="L4_microkernel_family#High_assurance:_seL4" title="L4 microkernel family">seL4</a></li>
<li><a href="HarmonyOS" title="HarmonyOS">HarmonyOS</a> (<a href="HarmonyOS_NEXT" title="HarmonyOS NEXT">HarmonyOS NEXT</a>)</li>
<li><a href="Phantom_OS" title="Phantom OS">Phantom OS</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language" title="Programming language">Programming languages</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Caja_project" title="Caja project">Caja–Cajita</a></li>
<li><a href="E_(programming_language)" title="E (programming language)">E</a></li>
<li><a href="Joe-E" title="Joe-E">Joe-E</a></li>
<li><a href="Joule_(programming_language)" title="Joule (programming language)">Joule</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="File_system" title="File system">File systems</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Tahoe-LAFS" title="Tahoe-LAFS">Tahoe-LAFS</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Specialised hardware</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BiiN" title="BiiN">BiiN</a></li>
<li><a href="CAP_computer" title="CAP computer">Cambridge CAP</a></li>
<li><a href="Flex_machine" title="Flex machine">Flex</a></li>
<li><a href="IBM_System/38" title="IBM System/38">IBM System/38</a></li>
<li><a href="Intel_iAPX_432" title="Intel iAPX 432">Intel iAPX 432</a></li>
<li><a href="Plessey_System_250" title="Plessey System 250">Plessey System 250</a></li>
<li><a href="Capability_Hardware_Enhanced_RISC_Instructions" title="Capability Hardware Enhanced RISC Instructions">CHERI</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-01-24" href="https://en.wikipedia.org/wiki/?title=Capability-based_addressing&oldid=1271563151">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>